Today's network links carry vast amounts of information. High bandwidth applications supported by these network links include, for example, streaming video, streaming audio, and large aggregations of voice traffic. In the future, network bandwidth demands are certain to increase. To meet such demands, aggregation of network links into a single logical link between nodes (such as switches, routers or bridges connecting physically remote local area networks) that share a high amount of traffic so as to increase the effective data transmission bandwidth between nodes has become popular. Also, logical distribution of nodes in a network into subnetworks containing nodes that exchange a substantial amount of traffic has become popular. These methods provide high bandwidth, capacity for future growth, and facilitate network load distribution.
FIG. 1 is a block diagram showing a topology of a network. Network nodes 130(1)-(M) are connected to a link node 110. Link node 110 may, for example, be a switch, bridge, router, or a hub. The connections between nodes 130(1)-(M) and link node 110 permit the nodes to share data. Nodes 130(1)-(M) may be any kind of network node, including, for example, computer workstations, storage area network (SAN) controllers, tape controllers, mainframe computer systems, router, switches and additional link nodes. Link node 110 is connected to a link node 120 through a plurality of network links 150. Link node 120 may also be, for example, a switch, bridge, router, or a hub. Link node 120 is further connected to a plurality of network nodes 140(1)-(N). Nodes 130(1)-(M) and 140(1)-(N) form local area networks (LANs) connected to their associated link nodes 110 and 120.
Variable identifiers “M” and “N” are used in several instances in FIG. 1 to more simply designate the final element of a series of related or similar elements. Repeated use of such variable identifiers is not meant to imply a correlation between the sizes of such series of elements, although such correlation may exist. The use of such variable identifiers does not require that each series of elements has the same number of elements as another series delimited by the same variable identifier. Rather, in each instance of use, the variable identified by “M” or “N” may hold the same or a different value than other instances of the same variable identifier.
Link nodes 110 and 120 can be in physically remote locations, thereby connecting their associated local area networks (LANs). The plurality of network links 150 between link nodes 110 and 120 can be aggregated as a single logical link over which all traffic between link nodes 110 and 120 is distributed. Such aggregation multiplies the available bandwidth for communications between link nodes 110 and 120, and therefore between the two local area networks. When appropriately configured, such a connection can permit the two local area networks to interact as if they were one large local area network.
As stated above, the plurality of network links between 110 and 120 can be aggregated as a single logical link. In this manner, each link node 110 and 120 sees the plurality of network links between them as one logical interface. One type of such an aggregate of links is an EtherChannel, a protocol that allows up to eight Fast Ethernet or Gigabit Ethernet links to be aggregated. Routing protocols treat the aggregated links as a single, routed interface with a common IP address.
Load balancing of data packets transmitted across individual network links within an aggregate of network links can be handled by interface hardware. The individual network links, across which the data load is to be balanced, can be selected in several ways. One such way is to analyze source and destination Ethernet addresses within the data packets to be sent over the logical link and generate a link identifier from that information. Another method for selecting a network link over which to send a packet is a round robin method, wherein each link is selected in order as packets arrive.
Another method for increasing the data transmission bandwidth in a network such as that shown in FIG. 1 is to logically subdivide the network using virtual local area networks (VLANs). VLANs can be viewed as a group of network nodes on different physical LAN segments. The group of network nodes can communicate with each other as if they were all on the same physical LAN segment. Typically, network switches are used to divide the network into VLANs. A VLAN can be envisioned as a workgroup, that is a group of network nodes that share resources (i.e., SANs or backup devices) or otherwise communicate often. VLAN nodes can be logically grouped into a single broadcast domain. By their nature, VLANs have separate broadcast domains. Broadcast traffic can be limited to just those nodes in the VLAN grouping, thereby reducing traffic seen by the rest of the network.
Further, VLANs can be independent of the physical location of each VLAN member network node. Network nodes anywhere in a network can be logically grouped into a VLAN.
VLAN benefits include increased available network data transmission bandwidth and physical topology independence. Grouping network nodes into VLANs increases available network transmission bandwidth by limiting broadcast traffic to network nodes of the VLAN. Additionally, since VLANs are typically implemented by VLAN-capable switches, less traffic needs to be routed and therefore router latency can be reduced. Further, VLANs allow LAN administrators to “fine tune” a network by logically grouping network nodes. VLANs also provide independence from the physical topology of the network by allowing location diverse network nodes to be logically connected within a single broadcast domain.
FIG. 1 illustrates how physically separated nodes can be part of the same VLAN. For example, network nodes 130(3) and 130(4) are part of the same VLAN 160(1) as network nodes 140(1) and 140(2). In order to support such a configuration, link nodes 110 and 120 need to be VLAN capable.
VLAN tag headers are included in the header of Open System Interconnection (OSI) Level 2 Ethernet packets to enable communication between or within a VLAN. The VLAN tag header is described in IEEE Std. 802.1Q. VLAN tag headers carry a VLAN identification (VID). The VID is a 12-bit field that uniquely identifies the VLAN to which a packet belongs. The VLAN tag header can be inserted immediately following destination and source MAC address fields of an Ethernet packet.
A network such as that illustrated in FIG. 1 should be capable of handling different types of packet transmission, including unicast, broadcast, and multicast packet transmission.
Unicast packet communication takes place over a network between a single sender network node and a single receiver network node. A unicast Ethernet packet will contain a source Ethernet address and a destination Ethernet address within a MAC header, as shown in FIGS. 2 and 3.
Broadcast packets originate at a single source network node but are destined for every node on a network or sub-network. The source address of a broadcast packet is that of the originating network node, but the destination address is a special broadcast address. As stated above, VLANs can serve to limit the number of nodes receiving a broadcast packet to nodes in the VLAN, if so desired.
A multicast packet is typically transmitted as a single packet received by a select group of receivers. The group of receivers is designated by a multicast address. The source node address appears in the header of a multicast packet, and the multicast address appears as the destination address. A single multicast packet sent by a network node can be replicated at other network nodes, such as link nodes 110 and 120, in order for the receivers to receiver the multicast packet. Each replicated multicast packet will have the same source and destination address (the multicast address).
FIGS. 4 and 5 illustrate the translation of an OSI Level 3 multicast IP address to an OSI Level 2 multicast Ethernet address. The OSI Level 3 multicast IP address is a 28-bit group identification, the low-order 23 bits of which is copied to a 48-bit OSI Level 2 multicast Ethernet address.
As stated above, packet source and destination addresses can be analyzed to determine which network link in a logical link is to be used to send a packet between link nodes 110 and 120. Commonly, such analysis involves a hashing algorithm that takes the Ethernet addresses and generates a network link identifier. The network link identifier identifies which of the plurality of network links is to be used for sending the packet between link nodes 110 and 120.
While the aforementioned method addresses data load balancing for certain types of data transmission (e.g., unicast), the method does not efficiently balance data loads across individual network links within a logical link for more complex data transmission such as multicast packet transmission. To illustrate, if a multicast packet is replicated at a link node (e.g., link node 110 or 120), the source and destination address are the same for replicated multicast packets, and such a hashing algorithm will generate the same link identifier for each replicated multicast packet and therefore send all of those replicated multicast packets on the same network link. This can create an undesirable load imbalance among the plurality of network links.
Since replicated multicast packets have the same source and destination Ethernet addresses, all replicated multicast packets being transmitted on a logical link will be transmitted on the same network link. It is therefore desirable to have a method or apparatus that is capable of distributing multicast Ethernet packets among the plurality of network links comprising a logical link.